package com.example.kaogong.sys.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.kaogong.sys.pojo.Course;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.kaogong.sys.pojo.vo.CourseDetailInfoVo;
import com.example.kaogong.sys.pojo.vo.CourseInfoVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

/**
 * <p>
 * 课程 Mapper 接口
 * </p>
 *
 * @author    
 * @since 2022-03-26
 */
@Mapper
public interface CourseMapper extends BaseMapper<Course> {

    /**
     * 根据课程编号逻辑删除课程
     * @param courseId
     * @return
     */
    @Update({"update t_course set deleted = 1 where course_id = #{courseId}"})
    int deleteCourseByCourseId(Integer courseId);

    /**
     * 根据课程编号修改课程缩略图
     * @param courseId
     * @param fileName
     * @return
     */
    @Update({"update t_course set course_img = #{fileName} where course_id = #{courseId}"})
    int updateCourseImg(@Param("courseId") Integer courseId, @Param("fileName") String fileName);

    /**
     * 根据课程编号获取课程详细信息
     * @param courseId
     * @return
     */
    CourseDetailInfoVo getCourseDetailInfoByCourseId(Integer courseId);

    /**
     * 分页获取课程基本信息
     * @param courseInfoVoPage
     * @param teacherId
     * @return
     */
    Page<CourseInfoVo> getCourseInfo(@Param("page") Page<CourseInfoVo> courseInfoVoPage, @Param("tid") Integer teacherId);

    /**
     * 根据课程编号查询课程基本信息
     * @param courseId
     * @return
     */
    CourseInfoVo getCourseInfoById(Integer courseId);
}
